﻿Imports System
Imports System.Attribute
Imports System.Collections
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.Globalization
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Runtime.Serialization
Imports System.Threading
Imports System.Reflection

Namespace sl3core
	Public Shared Interface IProxyProcessHandler
		ReadOnly Property AsyncHResult() As UInt32
		ReadOnly Property AsyncManagedCallArgument() As UInt32
		ReadOnly Property AsyncManagedCallType() As ManagedCallType
		ReadOnly Property ProxyProcessWantsToTalk() As Integer
		ReadOnly Property SharedAsyncDataSafeToWrite() As Integer
	End Interface
End Namespace
Namespace sl3game
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Interface IDrawable
		Event DrawOrderChanged As EventHandler
		Event VisibleChanged As EventHandler

		Sub Draw(ByVal gameTime As GameTime)

		ReadOnly Property DrawOrder() As Integer
		ReadOnly Property Visible() As Boolean
	End Interface
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Interface IGameComponent
		Sub initialize()
	End Interface
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Interface IGraphicsDeviceManager
		Function BeginDraw() As Boolean
		Sub CreateDevice()
		Sub EndDraw()
	End Interface
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Interface IUpdateable
		Event EnabledChanged As EventHandler
		Event UpdateOrderChanged As EventHandler

		Sub Update(ByVal gameTime As GameTime)

		ReadOnly Property Enabled() As Boolean
		ReadOnly Property UpdateOrder() As Integer
	End Interface

End Namespace
Namespace sl3math

End Namespace
Namespace sl3graphics
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Friend Interface IGraphicsResource
		Function RecreateAndPopulateObject() As Integer
		Sub ReleaseNativeObject(<MarshalAs(UnmanagedType.U1)> ByVal disposeManagedResource As Boolean)
		Function SaveDataForRecreation() As Integer
	End Interface
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Shared Interface IPackedVector
		Sub PackFromVector4(ByRef v1 As Vector4)
		Function ToVector4() As Vector4
	End Interface
	''' <summary>
	''' needs coding
	''' </summary>
	''' <remarks></remarks>
	Public Shared Interface IPackedVector(Of TPacked)
		Inherits IPackedVector
		Property PackedValue() As TPacked
	End Interface
End Namespace
Namespace sl3audio

End Namespace

Namespace sl3shapes

End Namespace
